/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package proy2redes;

/**
 *
 * @author jose
 */

import java.io.*;

public class prueba {

    public static String contenido(String nombre){
        File f = new File(nombre);
        String content = "";
        if (!f.exists()){
            System.out.println("No existe el archivo "+nombre);
            return null;
        }
        try {
            FileReader fr = new FileReader(f);
            BufferedReader br = new BufferedReader(fr);
            String linea = null;
            while ((linea = br.readLine())!=null){
                content += linea+"\n";
            }
        } catch (Exception e){
            System.out.println("Error al obtener el "
                    + "contenido del archivo "+nombre+"\n"+
                    e.getMessage());
        }
        return content;
    }

    public static byte[] contenido2(String nombre){
        File f = new File(nombre);
        //String content = "";

        if (!f.exists()){
            System.out.println("No existe el archivo "+nombre);
            return null;
        }
        try {
            //FileReader fr = new FileReader(f);
            FileInputStream fis = new FileInputStream(f);
            Long tamL = f.length();
            int tam = tamL.intValue();
            byte[] buf = new byte[tam];
            int leido = fis.read(buf);
            System.out.println(tam+" "+leido);
            if (leido < tam){
                System.out.println("No se leyo el archivo completo");
            }
            //content = buf.toString();
            fis.close();
            return buf;
            /*BufferedReader br = new BufferedReader(fr);
            String linea = null;
            while ((linea = br.readLine())!=null){
                content += linea+"\n";
            }*/
        } catch (Exception e){
            System.out.println("Error al obtener el "
                    + "contenido del archivo "+nombre+"\n"+
                    e.getMessage());
            return null;
        }
        //return content;

    }
/*
    public static String enviarArchivo(String nombreArch,
            String directorio){
        String arch = directorio+"/"+nombreArch;
        String result = "";
        File f = new File(arch);
        if (!f.exists()){
            System.out.println("No existe el archivo "+nombreArch);
            //out.println("Error: No existe el archivo "+nombreArch+"\n");
            //return;
        }
        try {

            String content = manejoArchivos.contenido(arch);
            out.println(comando +" "+nombreArch+"\n"+content+".");
            //out.write();
        } catch (Exception e){
            System.out.println("Error al enviar el archivo "+nombreArch);
            //out.println("Error: Falla al enviar el archivo "+nombreArch+"\n");
        }
    }

    public static void recibirArchivo(String nombreArch,BufferedReader br){
        try{
            File f = new File(nombreArch);
            f.createNewFile();
            FileWriter fw = new FileWriter(f);
            String linea = null;
            System.out.println("Archivo recibido:");
            while((linea = br.readLine())!=null){
                if (linea.equals(".")){
                    break;
                }
                fw.write(linea+"\n");
                System.out.println(linea);
            }
            System.out.println("Fin de archivo recibido");
            fw.flush();
            fw.close();

        } catch (Exception e) {
            System.out.println("Error al recibir el archivo "+nombreArch+
                    "\n"+e.getMessage());
        }
    }
*/
    public static void crearArchivo(String directorio, String nombreArch,
            String content) {
        try {
            String arch = directorio+"/"+nombreArch;
            File f = new File(arch);
            f.createNewFile();
            //FileWriter fw = new FileWriter(f);
            FileOutputStream fos = new FileOutputStream(f);
            byte[] buf = content.getBytes();
            System.err.println(content.length()+ " "+buf.length);
            fos.write(buf);
            fos.close();
            //fw.write(content);
            //fw.flush();
            //fw.close();
        } catch (Exception e) {
            System.out.println("Error al crear el archivo");
        }
    }

    public static void crearArchivo2(String directorio, String nombreArch,
            byte[] content) {
        try {
            String arch = directorio+"/"+nombreArch;
            File f = new File(arch);
            f.createNewFile();
            //FileWriter fw = new FileWriter(f);
            FileOutputStream fos = new FileOutputStream(f);
            //byte[] buf = content.getBytes();
            System.err.println(content.length);
            fos.write(content);
            fos.close();
            //fw.write(content);
            //fw.flush();
            //fw.close();
        } catch (Exception e) {
            System.out.println("Error al crear el archivo");
        }
    }

    public static void main(String[] args){
        String dir = "/home/jose/Documentos/Redes/lab3/cliente";
        String nomb = "nuevo.txt";
        nomb = "nuevo.pdf";
        nomb = "Pantallazo.png";
        String archc = "/home/jose/Documentos/Redes/lab3/Pantallazo.png";
        String cont = "Contenido del archivo de prueba 2\n";
        //cont = prueba.contenido("/home/jose/Descargas/Proyecto3.pdf");
        byte[] cont2 ;//= prueba.contenido2("/home/jose/Descargas/Proyecto3.pdf");
        cont2 = prueba.contenido2(archc);
        //crearArchivo2(dir,nomb,cont2);
        crearArchivo2(dir,nomb,cont2);
    }

}
